The present invention relates to parallel loop transformation methods for race detection during an execution of parallel programs. More particularly, the invention relates to a race detection method which is one of the debugging methods for parallel loop programs. The development of parallel programs for shared memory multiprocessors has a number of difficult problems in comparison to the development of serial programs. The main difficulty stems from the complexity of program construction and the conspicuous absence of debugging methods for the parallel errors inherent in a parallel program. The race detection according to the present invention is a debugging method for these races among the parallel errors. Since the races result in an unintended non-deterministic execution of the programs in which the repeatability of an execution is not guaranteed, they are regarded as one of the most difficult parallel errors that prevents even the application of a cyclic debugging method based on breakpoint. A number of methods have been developed for detecting the races for the purpose of debugging. Among these, the race detection method during an execution of parallel programs is capable of detecting as well as reporting the occurrence of the races during an execution of a program which is subjected to a debugging process. In view of the delicate characteristics of the races at a point of execution, this race detection method is valued as the most effective. The present methods available for detecting races during the execution of a parallel program simultaneously perform the processing and monitoring functions necessary for detecting races through a software monitoring device which monitors the whole execution of the program. However, due to the characteristics of a parallel program which require a long running time as a result of massive parallelism and the dramatic inflation of execution time induced by software monitoring, a practical implementation of the present race detection methods during an execution is not simple. Especially, the most commonly used parallel construction in shared memory parallel programs is a parallel loop and it consumes the largest portion of the total program execution time. This is the area in which most of the research efforts for improving the efficiency of the race detection methods during an execution are being concentrated.
Hereinafter, the race detection methods for parallel loops according to prior art will be described in detail with reference to FIG. 1.
FIG. 1 is a work flow chart of the race detection methods for parallel loops according to prior art.
First of all, prior to an execution of a parallel program, the race detection function is instrumented (S101) in order for all iterations corresponding to each parallel loop to perform inspection and monitoring processes for the race detection at a point of execution.
Afterwards, the program is executed for the race detection (S102). In general, the race detection method according to prior art for a standard parallel loop where several thousands or significantly more iterations are performed, the performance deterioration due to a long running time is unavoidable.